
package org.nanotek;

import java.util.Date;



/**
 * An interface the defines a class that his role on a concrete instance
 * is "hold (when $I is not an instance or Extends T") or "not hold (when $I is an instance or Extends T) in this case TI<$,T
 * is either an instance of a Kong or Base Object" *.
 * It extends the instanciable class which "restrict that the 'hold(b)ee' class" was instantiated during the
 * TI<I,T> construction.
 * @author josecanovamauger
 *
 * @param <$I> ->Any class or interface.
 * @param <T> =: The "template" class which is drawn over a "common base object for persistence, and a
 *               runtime object for manipulation".
 */
public interface TemporalImaginary<$I extends Context<DateBase<Kong<Date>> , Kong<Date>>, T extends Kong<?>> extends Instantiable<T , $I> , Kong<Kong<?>>,Base<Kong<?>> {

        public  T getTemporalImaginary(Kong<Kong<?>> kong);
        public  T getTemporalImaginary(Kong<Kong<?>> kong , $I i);
}